#ifndef SRC_LTT_H_
#define SRC_LTT_H_

/**一个测试用例。*/
typedef struct {
    int (*func)(void);
    char const* name;
    char const* file;
    int line;
} ltt_TestCase;

#define ltt_Test(M_Name)                                                       \
    static int ltt__TestFunc__##M_Name(void);                                  \
                                                                               \
    ltt_TestCase ltt__TestCase__##M_Name = {.func = ltt__TestFunc__##M_Name,   \
                                            .name = #M_Name,                   \
                                            .file = __FILE__,                  \
                                            .line = __LINE__};                 \
                                                                               \
    static int ltt__TestFunc__##M_Name(void)

#define ltt_TestCaseName(M_Name) ltt__TestCase__##M_Name

int ltt_Run(void);

#endif
